Data communication systems typically transfer data from a source to an end user by routing the data in packets through a series of nodes connected by links. It is generally faster to transfer data synchronously, when circumstances permit, and yet in many instances communication system links do not share an explicit clock. In the typical circumstance that the clocks at different node are independent, and yet synchronous data transfer timing is desired. Moreover, demodulating a modulated data signal can be done more reliably if the timing of the signal is precisely known by the receiving device. Although it is possible to independently synchronize the timing of each transmission block, timing certainty can be enhanced by synchronizing the clocks on each side of a link, even across different transmission blocks. Thus, there is a need for an apparatus and method to synchronize clocks across a communication link.
In some circumstances, such as when links operate in half-duplex communication modes, information is not provided continuously from a transmitter having a master clock to a receiver having a slave clock, and indeed such periods of non-transmission may be variable. Therefore, it will be advantageous for a clock synchronization mechanism used in such circumstances to establish and retain a lock despite an absence of information for substantial periods of time compared to the clock frequency.
Some forms of data transmission occur at a particular rate. For example, a DS1 (or T1) voice connection provides 193 bits every 125 microseconds, as determined by a “network clock” used by a source of such data. It is often important for an entity receiving such data to process it at a rate which precisely matches the sending rate. One method to match the processing rate is to process the received data under control of a clock which matches the network clock. This presents a further need to synchronize clocks which are otherwise independent.
A transfer clock (symbol clock) and a network clock are typically separate clocks which are independent of each other. A particular communication link may have both types of clocks. If the two clocks in such a link are independently maintained at each end of the link, then a need arises for synchronization of both clocks in the same link.
In the situation where a common clock (such as a GPS clock) is available to both sides of a network connection, it is known to use such common clock to synchronize a slave clock to an independent master clock, as presented in “Synchronous Techniques for Timing Recovery in BISDN” by Lau, et al., IEEE Transactions on Communications, Vol. 43, No. 2/3/4, February/March/April 1995. This approach is useful only when a common clock is available. Moreover, the technique as presented cannot reliably be used to phase-lock clocks in the presence of unknown transmission phase delays.
Accordingly, there is a need to synchronize clocks across a communication link when no common clock is available, and a need for tightly synchronizing clocks across a communication link to enhance the speed and accuracy of data transfers across that link.